High speed metrology with numerically controlled machines

ABSTRACT

Systems, apparatuses and methods are described for integrating an electronic metrology sensor with precision production equipment such as computer numerically controlled (CNC) machines. For example, a laser distance measuring sensor is used. Measurements are taken at a relatively high sample rate and converted into a format compatible with other data generated or accepted by the CNC machine. Measurements from the sensor are synchronized with the position of the arm of the machine such as through the use of offsets. Processing yields a detailed and highly accurate three-dimensional map of a workpiece in the machine. Applicable metrology instruments include other near continuously reading non-destructive characterization instruments such as contact and non-contact dimensional, eddy current, ultra-sound, and X-Ray Fluorescence (XRF) sensors.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH

This invention was made with government support under Contract No.W911NF-11-1-0034 effective 19 Jul. 2011 awarded/issued by US ARMY RDECOMACQ CTR-W911 NF of Durham, N.C. and administered by DCMA Ohio RiverValley, Wright-Patterson AFB of Dayton, Ohio. The government may havecertain rights in the invention.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a Division of application Ser. No. 13/708,972, filed on Dec. 8,2012, the entire contents of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

Field

The present invention relates to synchronizing, logging and postprocessing metrology instrument readings with the position andorientation of precision production equipment such as: computernumerically controlled (CNC) mills and lathes, grinding machines,lapping machines, robots, additive manufacturing equipment (a partiallist of precision production equipment). More particularly, as anexample, the invention relates to synchronizing non-contact dimensionalmetrology instruments with precision production equipment in order tocharacterize a workpiece's shape and features while it is loaded in thework space of precision production equipment.

Related Art

At the time of writing, a computer numerically controlled (CNC) machineis capable of manufacturing a workpiece or product to within 2micrometers (10⁻⁴ inches) of design specifications under close to idealconditions. Some precision production equipment can achieve even tighterdimensional tolerances. However, it is difficult to produce CNC machinetools that are capable of high fidelity measurements of said workpiecewith absolute accuracy on the order of micrometers (10⁻⁴ inches).Further, machining and measurement are typically done in separateoperations with specialized equipment dedicated to each operation.

Modern CNC machines typically use a drawing or digital model from whichis created a profile for the product and/or instructions. Theinstructions or profile are used to control the operation of the CNCmachine. A programmer or operator may be involved to design amanufacturing process from the drawing or model. A numericallycontrolling program is created manually or automatically through anautomated programming device. An operator enters or selects anappropriate numerically controlling program and manually sets a startingmaterial for the workpiece in the CNC machine. Alternatively, thestarting material is automatically placed therein.

Subsequently, the CNC machine creates a product by following the set ofinstructions. The CNC machine cuts, grinds, drills and shapes aworkpiece from the starting material. Before processing or manufacturingbegins, setup requires many steps including establishing a workpiececoordinate system prior to machining and establishing the maximummaterial condition such that the first machining pass for each featureremoves minimal material (and ensures each tool does not crash into theworkpiece). Such setup can be tedious and time-consuming for largegeometrically complex parts such as castings and weldments.

Further, just after the product or workpiece is created, it is unknownwhether the particular workpiece matches in all respects the drawing ordigital model. Conventionally, one way to determine the dimensions,shape and size of a finished workpiece is to use a touch probe and havea coordinate measuring machine (CMM) or CNC machine utilize the touchprobe to contact and pause (stop all machine motions) at discrete pointsof each workpiece feature of interest.

The common touch probe technology measurement method routinely involvesfour distinct phases for each discrete point. During the first phase theprobe is maneuvered along a safe path to a point in space that is alonga normal vector from the surface feature of interest. The second phaseinvolves maneuvering the probe along the normal vector until contactwith the feature is detected by the probe (mechanism of contactdetection internal to the probe body can be a set of contacts, straingage(s), or optically). After contact is detected, machine motion stops;this pause at a single position enables the precise capture of allspatial variables of the machine and probe. Then an offset is applied tothese spatial variables to compensate for the probe tip diameter and theapproach vector, thereby computing a discrete point in spacecorresponding to the feature of interest. The coordinates of this pointare stored in memory. The fourth phase generally involves a retreatalong the original normal vector to a safe point to start the firstphase of the next probe point measurement.

Such procedure is fraught with drawbacks. For example, taking suchmeasurements over the surface of most shapes and workpieces istime-consuming. Further, the stylus ball at the end of the touch probeinherently limits the minimum feature size tactile feedback is capableof, certainly compared to other means of measurement (e.g., lasersensors, optical sensors). Only a limited number of measurements arerealistically possible with discrete tactile measurements as determinedby the time budget for inspection and the average time between touchprobe operations. When the common practice of part verification isconducted in a dedicated instrument, such as a CMM, separate from theproduction equipment, such as a CNC milling center, the part coordinatesystem must be established in each operation. The variability involvedwith establishing the part coordinate system multiple times in multiplemachines creates a source of error if and when the same componentrequires rework in the production equipment. When rework is required,the accuracy requirements of the subsequent set up in the productionequipment are increased significantly and may require even more care andtime to achieve the part coordinate system and maximum materialcondition.

Some scientists and engineers have attempted continuous tactile andnon-tactile means of performing measurements of workpieces in productionequipment. As mentioned previously, the common state of the art formeasurement in production equipment involves gathering discrete points,each point requiring on the order of one second, in many instances asmuch as two seconds per point.

Near continuous measurement tools with rates of thousands of points persecond that do not require the production equipment to physically stallat each point has long been desired by industry. However, synchronizingsuch measurements with the positions and motions of precision productionequipment such as a CNC machine has been problematic. Most metrologyinstruments process their input signal and thus impose a slight temporaldelay in reporting their measurements. The metrology instrument temporaldelay may be on the order of 400 micro-seconds. This instrument timedelay is not an issue when the instrument is utilized to take discretepoints with the method outlined above. However, the delay is an issuewhile attempting to characterize a workpiece with a continuous scan thatdoes not pause in space momentarily to log its readings.

FIG. 1 shows a two-dimensional schematic of a CNC machine according to aconventional use. With reference to FIG. 1, a milling machine 100includes a headstock 102 from which the milling machine 100 controls aspindle 106 and operating arm 108. Attached to the operating arm 108 isa tool head 110 and touch probe 112. The operating arm 108 brings intocontact with a workpiece 116 the end 114 of the touch probe 112. Themilling machine 100 knows the location of the end 114 of the touch probeand records a set of positional values when the touch probe 112 detectsa mechanical resistance. The workpiece 116 is clamped or otherwise fixedon a movable bed 118. The positions of the various parts of the millingmachine 100 (e.g., operating arm 108, bed 118) are monitored andrecorded. The bed 118 rests on a rigid frame 120, and the column 122houses various mechanical, electric and computer-based components. Themilling machine 100 may be, for example, a five-axis CNC machine wherethe axes include: an x-axis, a y-axis, a z-axis through which theoperating arm 108 and tool head 110 may be operated; and two axes ofrotation (e.g., a-axis, and b-axis) along which the workpiece 116 may berotated or moved. Commonly the touch probe 112 is removed during cuttingoperations and installed directly into the spindle 106 duringmeasurement operations without requiring the operating arm 108.

As known in the art, and as can be inferred from FIG. 1, measurementsrelated to the position of the end 114 of the touch probe 112 are takenwhile the production equipment is paused and the contact probe isengaged with the workpiece. For complex shapes, it is excessivelytime-consuming to get a sufficiently accurate set of measurements fromwhich to build a model of the particular workpiece 116 in the millingmachine 100. While this practice is adequate for establishing workpiececoordinate systems, it is deficient in characterizing the maximummaterial condition of complex weldments and castings, or verification ofworkpiece features. Due to the sparse characterization of maximummaterial condition the operating instructions start out in free spaceand approach the workpiece in a seemingly timid or cautious manner so asto avoid a crash into the workpiece 116. Once the machining process iscomplete, the tactile probe may be used to gather a few pointsassociated with each key feature before removing this workpiece 116 andloading the next. Thus, conventional uses include spot-checking a fewkey sizes or locations of a workpiece 116 before a new blank or startingblock is placed in the milling machine 100. Some engineers and operatorshave attempted to create a continuous or near continuous (hundreds orthousands of points per second) production machine-based measurementsystem by replacing the touch probe 112 with electronic sensors (notshown). However, there remain substantial shortcomings of repeatedlymoving the operating arm 108 to a new location and taking a singlemeasurement with the sensor (not shown), and making a single recordingof the position of the sensor related to the workpiece 116 and thensynchronizing these two measurements such that in the physical domainthey are mechanically aligned to at least the production equipmentmanufacturer's stated position accuracy and repeatability. These andother disadvantages are overcome with the teachings described in thepresent invention.

SUMMARY

Embodiments and techniques described herein include improved systems,apparatuses and methods for performing automated setup and verificationof milling and other types of precision production equipment such ascomputer numerical control (CNC) machines. Generally, measurements froma metrology device are converted to a CNC machine tool readable format(e.g., incremental quadrature encoder, sinusoidal encoder, absoluteencoder formats). These values are logged by the machine toolsynchronously with all machine tool axes. Then, these values are writtento a file, post-processed and compared to a CAD model. Corrections maybe made such as by providing a spatial shift of the recorded metrologydata to compensate for the metrology instrument's inherent temporaldelay, or application of machine tool offsets between the productionequipment's datum and location of the metrology instrument during thescan. Data may be stored for each serialized workpiece and may be usedfor production cycle and life cycle comparisons.

In a particular exemplary implementation, a laser distance measuringdevice outputs raw measurements, and these measurements are rapidlyconverted (imposing another temporal delay) into one of several formatsthat are consistent or compatible with a data format of a CNC machine.Laser-based distance measurements and CNC machine location andorientation measurements are recorded synchronously. As the lasermeasuring device is swept across the surface of the workpiece, theresult is a substantially complete set of measurement data for aworkpiece. The metrology measurements have a spatial offset vectordirectly proportional to the metrology instrument's temporal delay (plusthe signal converter's temporal delay) and the scan speed and directionof the CNC machine at the precise moment of the synchronized recording.This spatial delay is calculated and corrected for during the postprocessing of the recoded metrology data. An actual representation of aworkpiece can be constructed and compared against a model, profile ordesign for the particular workpiece. This technique may be triviallyextended to any type of high-speed measurement sensor that outputsscalar values.

Extra post-processing is required when the metrology instrument outputsnon-scalar data such as the two- or three-dimensional data from anultrasound instrument or the multi-parameter data from an XRF alloyanalyzer. A modulated scalar indexing signal is used to synchronizethese more complex metrology instruments with the motions of precisionproduction equipment. The separate scalar signal is created andsimultaneously recorded by the production equipment and a separate datalogger. The separate data logger records the modulated scalar values andthe multi-dimensional metrology data. Upon post processing the temporaldelay is accounted for as discussed above for one-dimensional scalarinstruments. Then the database of indexed, multi-dimensional metrologydata is assembled with the production machine's shifted spatial datausing the recorded index values to precisely locate eachmulti-dimensional metrology reading.

It should be emphasized that—in the preferred embodiment of theinvention—the production machine's spatial data is shifted(interpolated) rather than the metrology data. Since the productionmachine has inertia it can only move from point to point in anincrementally smooth fashion. This smooth motion and therefore smoothspatial data (no discontinuities) provides the basis for soundinterpolation between points. If on the other hand metrology data areinterpolated to fit exactly with the production machine's spatial data,one would be required to interpolate between a set of data points thatmay have sharp discontinuities and thus do not satisfy the basicassumptions required for interpolation. Such discontinuities indimensional data occur at feature edges such as pockets, holes,workpiece corners, etc. Discontinuities in ultra-sound data areassociated with inclusions, voids, and feature interfaces on theopposite face of workpiece. Discontinuities in eddy current data occurat surface cracks and other surface and near surface changes in localelectrical impedance. Discontinuities in XRF data may occur at weldboundaries, areas of alloy depletion/augmentation associated with heattreatment, welding, or in-service corrosion such as inter-granularattack.

One result is to enable or speed up automated setup, which may includeestablishing a workpiece coordinate system and its detailed maximummaterial condition prior to initializing the production operation.Another result is a highly accurate verification of a workpiece after orbetween the production steps. The measurements are provided to themachine prior to breaking setup. Such measurements enable theclosed-loop control of the precision production equipment withoutbreaking setup and re-establishing the part coordinate system. Suchin-situ verification enables substantially complete serializeddimensional quality control of each workpiece. Production tolerances areensured and continuously improved. Workpieces are produced and verifiedto match design assembly dimensions within tight tolerances. Multiplecomponent matching may be performed based on serialized quality controldata yielding assemblies with tighter stack-up tolerances. Machine driftmay be characterized and corrected throughout daily, weekly and monthlyproduction cycles. Still another result is to enable the threedimensional surface, sub-surface and through-body characterization of aworkpiece utilizing the production equipment to articulate theassociated instruments over the surface of the workpiece. The derivedset of spatially oriented metrology data can be used to qualify aworkpiece for further production work, or ultimately either qualify orreject it for field service. When a serialized part returns from fieldservice and is considered for repair and re-use the original serializedmetrology data set can be compared against a similarly derivedpost-service data set to accurately measure a workpiece's wear,corrosion, distortion, change in alloy composition, growth of surfaceand subsurface faults such as cracks, voids and inclusions.

During operation of a CNC machine, automated adjustments may be made,and closed-loop dimensional control is enabled. Consequently, feedbackis provided to the CNC machine based on the shape of the actual machinedworkpiece without breaking set up and requiring the re-establishment ofworkpiece coordinate system. Previous techniques have been limited toproviding feedback based solely on a small number of measurementsrelated to machine tool location and offsets.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key or essentialfeatures of the claimed subject matter, and thus is not intended to beused to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

While the appended claims set forth the features of the presentinvention with particularity, the invention, together with its objectsand advantages, will be more readily appreciated from the followingdetailed description, taken in conjunction with the accompanyingdrawings. Throughout, like numerals refer to like parts with the firstdigit of each numeral generally referring to the figure which firstillustrates the particular part.

FIG. 1 shows a two-dimensional schematic of a CNC machine according to aconventional use.

FIG. 2 shows a two-dimensional schematic of a CNC machine according toone implementation of the invention.

FIG. 3 shows a flowchart of an overview of coordinating distancemeasurements with a CNC machine according to one implementation of theinvention.

FIG. 4 shows a table illustrating an exemplary computation scheme andexemplary set of values from a distance sensor according to oneimplementation of the invention.

FIG. 5 shows a table of a result of an exemplary calculation and loggingof values from a machine and converted values according to oneimplementation of the invention utilizing an optional low-passalgorithm.

FIG. 6 illustrates steps to implement one embodiment of the invention.

FIG. 7 shows a representation of a burred channel formed in a material(workpiece) by a milling machine.

FIG. 8 shows an exemplary set of positions from which measurements aretaken from the material (workpiece) shown in FIG. 7 according to oneimplementation of the invention.

FIG. 9 shows a close-up view of a portion of the burred channel shown inFIG. 7 and FIG. 8.

FIG. 10 shows a plot of a set of measurements relative to across-section of the burred channel shown in FIGS. 7-9 according to oneimplementation of the invention.

FIG. 11 shows a plot of two sets of measurements of a portion of theburred channel shown in FIG. 7.

FIG. 12 shows an exemplary hardware device that may be used to implementone or more of the components or devices described herein.

DETAILED DESCRIPTION

Overview.

Precision production equipment and measure machines have been used formany years to make two-dimensional and three-dimensional workpieces fromsolid blanks or blocks of a starting material. Material is removedlittle by little until the final workpiece remains. Milling machinescome in a variety of sizes. Milling machines can move a spindle, arm ortool relative to the workpiece, or can move the workpiece relative tothe spindle, arm or tool. Often, the milling tool is a rotating millingcutter, which cuts on the tool's sides and tip. While some millingmachines are manually operated, most modernized milling machines arecomputer controlled. Such control is often referred to as computernumerically controlled (CNC). While a CNC machine may be referencedherein, such referenced machine is not limited to just milling machines,but refers generally to all precision production equipment.

A workpiece is often created from a model or digital design. Anoperator, programmer or automated computer program turns the digitaldesign into a series of commands to control the milling machine. The CNCmachine precisely controls workpiece and tool movement. Often, precisionCNC machines measure their position to within 0.00001 inches (0.25 μm)while monitoring actual tool path versus programmed path.

Once a workpiece is complete, it is helpful to measure the workpiece tosee how closely the actual workpiece matches the digital or computeraided design of the workpiece.

Previously, quality control and feedback measurements were taken one ata time by a measurement probe as described in relation to FIG. 1, oreven more commonly removed from the production equipment without anyinspection prior to breaking setup. Prior to releasing a finishedworkpiece 116, the milling machine 100 may change tools by selecting atouch probe 112. The touch probe then would be used to touch a discretelocation on the workpiece 116. Touching could then be repeated asdesired before changing tools. A comparison could be made between anactual measurement from the workpiece 116 and a corresponding predictionfrom the workpiece design. If the measurement (e.g., distance) is off byan excessive amount, then an adjustment could be made. The workpiececould be further milled or could be rejected if the workpiecemeasurements are not within tolerances. While some machinists haveattempted to replace the touch probe 112 with a high speed measuringdevice, using the same previous technique (making measurements one at atime) is not adequate because most manufacturing operations cannotafford to take more than a few measurements before another workpiece 116must be started and created so that a sufficient number of workpiecescan be made within a given amount of time.

Detector.

The current invention employs a different technique to capturemeasurements of a workpiece 116. FIG. 2 shows a two-dimensionalschematic of a CNC machine 200 according to one implementation of theinvention. With reference to FIG. 2, a CNC machine 200 includes aheadstock 102 from which the CNC machine 200 controls a spindle 106and/or operating arm 108. Reference in this description is made to anoperating arm 108, but may equally apply to the spindle 106 or a tool ormeasurement device attached to the spindle 106. Attached to theoperating arm 108 is an electronic measurement device 202. Theelectronic measurement device 202 emits a signal 204 (e.g., laser,ultrasound signal) and measures a return signal 206. The position of theelectronic measurement device 202 is adjusted and coordinated with aknown position and/or orientation of the operating arm 108. Accordingly,the CNC machine 200 can track the location or position of the operatingarm 108 and therefore the location or position of the electronicmeasurement device 202 as the operating arm 108 moves about theworkpiece 116. In one implementation, the CNC machine 200 records by acomputer component 212 values associated with the operating arm 108.However, the CNC machine 200 does not directly synchronize or wait for asingle measurement from the electronic measurement device 202 at each ofa set of discrete locations about the workpiece 116. Instead, theelectronic measurement device 202 records, sends, or records and sendsmeasurements to a converter or encoder 208 as the operating arm 108moves about the workpiece 116. The electronic device 202 may beconnected by a cable 222 to the encoder 208, or may wirelesslycommunicate with the encoder 208. Alternatively, the encoder 208 may beincorporated into the electronic measurement device 202, the computercomponent 212, or a combination of the encoder 208 and the computercomponent 212. While the CNC machine 200 operates, the encoder 208 sendsdata (e.g., values, numbers, distances, positions, measurements,modulated index signal) derived from the electronic measurement device202 via a cable 210 or wireless transmission to the same or othercomputer component 212 of the CNC machine 200.

The encoder 208 accepts measurements from the electronic measurementdevice 202 one at a time. In alternative embodiments, the encoder 208accepts measurements in batches from the electronic measurement device202. The measurements may be raw or converted by the electronicmeasuring device 202. With reference to FIG. 2, the sensor or electronicmeasurement device 202 generates values, preferably at a substantialrate (e.g., on the order of hundreds, thousands or more times persecond). These sensor readings may be in any format, but are generallyin a binary format, depending on the particular measuring device. Asexplained in further detail herein, the encoder 208 receives or detectsthe sensor readings or measurements. In a preferred implementation, theencoder 208 turns the measurement values into incremental valuesfollowed by a burst of incremental quadrature values, or other formatthat is consistent or compatible with the data format of the precisionproduction equipment being used (such as a CNC machine) and consistentwith positional values of the operating arm 108 or spindle 106 of anyparticular CNC machine 200.

The encoder 208 converts the measurement values one at a time. The CNCmachine 200 is programmed to log coordinates of the operating arm 108along with the synchronous value of the data register used to integratethe bursts of incremental encoder values from the encoder 208.

In summary, in the exemplary implementation shown in FIG. 2, ahigh-speed measurement device generates a signal that is processed intoa format that is natively readable by a computer component 212 of theCNC machine 200. The CNC machine 200 generates and tracks coordinates,and with the assistance of the electronic measurement device 202 andencoder 208, is able to record a substantial series of metrologymeasurements. With the metrology measurements, a computer programassociated with the CNC machine 200 can generate a three-dimensionalrepresentation of the actual workpiece 116. The CNC machine 200 can beany precision production equipment such as a CNC machine, millingmachine, measurement machine and the like.

In the description, a laser distance measurement device has beendescribed as an exemplary metrology instrument. Other metrologyinstruments may be synchronized in the same manner in order to map aworkpiece's associated surface, near-surface and through-bodycharacteristics to its three dimensional model while said workpiece isin the work space of precision production equipment. Examples of othermetrology instruments include contact dimensional instruments (LVDT,etc.), surface flaw detectors such as eddy current, through-bodyinspection such as ultrasound, and alloy analyzers such as x-rayfluorescence (XRF) analyzers.

Example.

The following is a specific example of the components used according toone functional implementation of the invention. With reference to FIG.2, the CNC machine 200 is a Milltronics vertical machine (MilltronicsCNC Machines, Waconia, Minn., USA), and the particular model is a VM-20machining center. An electronic measurement device 202 is an LK-G5000series CMOS laser displacement sensor (Keyence, Elmwood Park, N.J.,USA).

The electronic measurement device 202 is connected to the encoder 208through an expansion 40-pin connector via a 40-conductor ribbon cable.The values from the electronic measurement device 202 are read atapproximately 50,000 times per second. Other detection speeds arepossible. The sequence of values from the electronic measurement device202 is converted to a sequence of delta values (current measurementminus previous measurement); the sequence of delta values are convertedto bursts of quadrature output signals with a pulse rate ofapproximately 1.2 MHz. The quadrature output signal is one that iscompatible with or in a format acceptable to the CNC machine 200. Itshould be noted that the calculation and use of a sequence of deltavalues is an optional step used in conjunction with incremental orsinusoidal encoder-based precision production equipment. The calculationof a sequence of delta values is not required for precision productionequipment based on absolute encoders. The 1.2 MHz pulse rate wasempirically determined and conformed to a rate that was compatible withthe speed that the CNC machine (CNC controller) can read, detect oraccept without losing or missing any pulses/increments.

An encoder 208 is a TS-7800 series of single board ARM-basedmicrocontroller that includes a customizable field-programmable gatearray (FPGA) (Technologic Systems Inc., Fountain Hills, Ariz., USA). Theencoder 208 monitors a strobe signal from the distance measurementdevice 202 to determine when values on pin 20 (designated as the leastsignificant bit) thru pin 40 (most significant bit) of the 40-conductorribbon cable are valid. The binary number represented on pins 20-40 arecaptured only when the strobe signal is high (valid). When the strobesignal is low, no value is captured. This preliminary validity checkeliminates false data from being processed and recorded while thevoltages on the 40-conductor ribbon cable are in transition.

An optional low-pass filter algorithm was applied to the data from theelectronic measurement device 202. One benefit of the low-pass filter islimiting a delta of the signal to equal to or less than the number ofincremental pulses that can be communicated between the encoder 208 andthe CNC machine before the next electronic measurement device strobesignal is created. For this example the low pass filter limits themagnitude of the delta (current measurement minus previous measurement)to about ±20 microns (20 encoder increments in this exampleimplementation) for every output cycle of the electronic measurementdevice 202. In alternative implementation, another benefit of thelow-pass filter is to prevent undesired effects of signal noise. Withoutthe low pass filter a single noise event can affect the metrologyaccumulator value in the CNC machine for several cycles. If the noiseevent causes a delta calculation of magnitude greater than can becommunicated between the encoder 208 and the CNC in one data cycle(50,000 Hz data rate has a data cycle of 20 microseconds) then the nextdata reading may be missed while finishing the burst of incrementalpulses. Furthermore it will take the same amount of time (measured atapproximately 833 nanoseconds per pulse) to restore the CNC's internalmetrology register to the nominal value.

The encoder 208 (signal converter) compares each absolute displacementvalue to the last absolute value by subtracting a previous value from anew value, thereby creating a delta value. This delta value is then sentout as a burst of increments on a four-bit wide bus such as on ashielded multi-wire cable following an industry standard for quadratureincremental encoders. This industry standard accounts for both magnitudeand direction (either a positive or negative delta). Thus, the signalconverter translates in substantially real time absolute measurementvalues to incremental quadrature values. The CNC machine 200 receivesthe incremental quadrature signal from the encoder 208, and the CNCmachine 200 increments an associated accumulator register in its memory.On a precisely controlled temporal interval, the CNC machine logssynchronously the associated metrology signal accumulator register alongwith values associated with machine tool axes (e.g., x-axis, y-axis andz-axis).

At the computer component 212 (of the Milltronics VM-20 machiningcenter), machine tool axes and laser displacement value are loggedsynchronously at approximately 2,048 times a second. The outputtedbinary number of the electronic measurement device is an absolutedisplacement value of the measurement. Because the sensor is attached tothe CNC (coordinate) machine 200, the coordinates (i.e., highly accuratelocation) of the sensor are available to the CNC machine 200. Many CNCmachines perform with 5 or more axes, and according to the invention,the encoded values are received and logged by the CNC as if it wereanother machine axis.

Many CNC machines check or track position, velocity and acceleration atfixed temporal intervals throughout the execution of its programmed toolpath. The Milltronics CNC mill checks its position, velocity vector,acceleration vector, axis drive motor amplifier command signals 2,048times a second. We will call this cycle the kinetic control loop. Thesevalues are compared against desired tool path and appropriatecorrections are applied. During a machine move along a tool path, thiskinetic control loop is the primary function of the precision productionmachine's controller, frequently using a substantial amount of itscomputing power. If the metrology logging methodology employed a systemof interrupts to acquire machine locations, the precision productionmachine's primary function during a machine move along a tool path maybe disturbed, perhaps to the point of compromising tool path. Theinvention does not use a system of interrupts or other secondary ways toacquire machine locations, but rather utilizes the machine controller'skinetic control loop.

During the factory testing of new tooling centers the kinetic controlloop is augmented with a kinetic control logging routine. The kineticcontrol logging routine provides factory technicians detailed datashowing the machine's physical response to various tool path changes.Factory personnel use this data as a basis for tuning the axis drivemotor amplifier gains to obtain optimal machine performance. During thefactory tuning of the Milltronics VM-20 all the mentioned position,velocity, acceleration and feedback values are recorded at a rate of2,048 times per second. The kinetic control data logging is as anelement of the kinetic control loop, not a secondary program loop orinterrupt routine. This data is temporarily stored on the mainprocessing board until the test move is complete. On-board storage isused to minimize the time required for the controller to perform thestorage function such that the machine move along the tool path is notdisturbed.

The kinetic control data logging routine was utilized and optimized forthis invention. If all the velocity, acceleration, and control signalsare logged along with one channel of metrology data, the VM-20 loggingroutine is limited to approximately 35,000 points (approximately 17seconds of scan time at 2,048 samples per second). To make additionalroom for more metrology data, the standard kinetic control loggingroutine was modified to not record axis velocity, acceleration or theamplified control signals. By limiting the logged data to just the axispositions and the metrology data, a storage volume of approximately250,000 points (approximately two minutes of scan time at 2,048 samplesper second) was enabled on the Milltronics VM-20. This can be furtherincreased by expanding the onboard memory or utilizing a controller thatcan communicate to an external memory device in real time during aprogrammed move. The logging time can be further increased by loggingevery second, third, fourth, etc. cycle through the machine kineticcontrol cycle (integer multiples of the machine kinetic control loopcycle).

In one implementation, due to limitations of the computer component(s),logging was found to be limited to approximately 250,000 points per onecomputer file. However, the technique is much more general. One canconsider a batch of values such as those in a single file as a “pointcloud.” Such point cloud can be written to an external computer (notshown in FIG. 2) via file transfer, a socket algorithm or otherprogramming. Once the values are recorded, one or more steps ofpost-processing are performed. In one such example, a time shift ormeasurement correction is made to adjust for and accommodate a delay inmetrology instrument measurement. In another example, tool offsets orpositional corrections are made to compensate for measured featuredeviations as compared to a CAD model. Such tool offsets or positionalcorrections may be done manually or programmatically. When allmeasurements are corrected back to machine coordinates, a study ofprecision production equipment accuracy versus location of workpieceinside the working volume may be conducted.

Once the data from the CNC machine 200 and electronic measurement device202 are collected, unbiased and stored, further post processing canoccur. For example, a post-processed point cloud may be compared to aCAD model in a graphical software program. For example, a comparison ofdata is compared using PolyWorks® software (InnovMetric Software Inc.,Québec, Canada) or CAPPS NC software (Applied Automation TechnologiesInc., Rochester Hills, Mich., USA). Any workpiece 116 can be compared.For example each of a series of workpieces can be compared with eachother and compared against a CAD model (and set of CNC instructions) ofthe workpiece. Such comparison enables a lifecycle dimensionalcomparison that can detect wear of tools, distortions, and the like.

Methodology.

FIG. 3 shows a flowchart 300 of an overview of coordinating distancemeasurements with a CNC machine according to one implementation of theinvention. With reference to FIG. 3, the method includes generatingmeasurements with a distance-measuring device or sensor 302. Suchgeneration involves conversion of one energy form into another, and mayinvolve conversion of an analog electronic signal into a digital signal.Next, the method includes detecting sensor readings, or portion thereof,by a converter or encoder 304. Next, the encoder converts or encodes thesensor readings 306. In one implementation, encoding transforms thesensor readings or portion thereof into delta or incremental valuesconsistent or compatible with a format acceptable to a CNC machine.Next, the CNC machine detects or accepts encoded values 308. Next, theCNC machine logs values related to one or more axes and appropriateand/or corrected encoded values 310. Further, offsets or corrections tothe encoded values may be applied 312. Optionally, the logged values maybe visualized or compared against a model for the workpiece in the CNCmachine 314.

According to a preferred implementation, an incremental quadratureencoder is used. An incremental encoder provides pulse output that hasan understood magnitude and communicated direction (positive ornegative) as dictated by a pulse sequence convention. To provide usefulposition information, the encoder position must be referenced to themeasurement device to which it is attached, generally using an indexpulse. One distinguishing feature of an incremental encoder is that itreports an incremental change in position, not an absolute position. Theinvention is not limited to the use of incremental quadrature encoders.The data format created by the invention's encoder is dictated by thedata format of the precision production equipment to be interfaced with.The data format created by the invention's encoder may be incrementalquadrature, sinusoidal, absolute position or any other format used by aparticular precision production machine's controller.

Quadrature.

Many CNC machines use linear and/or rotary encoders in association withmotor shafts of its moving parts to track the position of the operatingarm 108 or spindle 106 along its various axes of motion. Motors arecontrolled and given directions by an associated computer and software.Motors facilitate incremental rotary or “quadrature” encoders by keepingtrack of binary values associated with two (or more) signals that areout of phase with each other as motor shafts turn. One example ofsignals is a set of two square waves that are 90-degrees out of phasewith each other; these two signals are often labeled A and B. In CNCmachines, the “encoders” provide a counting of increments of lineartravel or rotation of the motors, and corresponding linear travel alongrespective axes along which the operating arm 108 or spindle 106 moves.Using the counting or values of the signals, it is possible to determinewhich direction the operating arm 108 is moving. For example, dependingon the direction of rotation, one gets either 00, 01, 11, 10 or 00, 10,11, 00 which corresponds to either “0, 1, 3, 2” or “0, 2, 3, 1.” From agiven set of absolute starting positions, quadrature readings enable aCNC machine (and computer) to precisely navigate in a three-dimensionalworkspace while using electric currents to operate motors that rotateand cause motion along tracks.

The invention combines converted measurements from a metrology devicewith measurements from the axis encoders of the CNC machine to mapfeatures and characteristics of the work piece inside the workspace ofthe precision production equipment. The CNC machine is given a means toindependently characterize a workpiece.

FIG. 4 shows a table 400 that illustrates an exemplary computation orencoding scheme followed by an encoder as described herein. Withreference to FIG. 4, a table 400 includes a first column 401representing a timeline, a second column 402 showing exemplary values ofbase-10 corresponding to measurements from a distance sensor accordingto one implementation of the invention. While the first timeline valueis 0.000000 milliseconds is an arbitrary value, the number of digits ofthe timeline 401 is exemplary. The timeline 401 is not used in encodingbut shows the temporal relationships between functional elements of theinvention. The table 400 also includes a third column 403 of 21-bitbinary values corresponding to the values shown in the second column402. For the Keyence LK-G5000 measuring device, the output is a seriesof measured values in the form of a binary number (two's complement) of21 bits. The table 400 includes a fourth column 404 of delta values(current measurement minus previous measurement) calculated internal tothe invention's encoder. The table 400 includes a fifth column 405 ofencoded quadrature values destined for a CNC machine. The invention'sencoder transforms a sequence of measured values shown in column 403into a sequence of delta values represented by base ten values shown incolumn 404 and finally into bursts of encoded quadrature values shown incolumn 405. The precision production equipment receives the encoder'squadrature values and updates its internal register as shown in sixthcolumn 406 of the table 400. The precision production equipmentsynchronously records all of its axis positions simultaneously alongwith the internal metrology register.

Encoding according to one exemplary implementation of the invention isnow described in reference to values of the five rows 410, 412, 414, 416and 418. The measurement from the metrology instrument at a point intime, 0.000000 milliseconds, is detected as +13.497 mm as shown in thesecond column 402. The actual signal detected is binary corresponding tothe 21-bit value (0 0000 0011 0100 1011 1001) shown in the third column403. Assume (for sake of this illustration) the current quadrature stateis (0101) as shown in the fifth column 405.

Moving to the second row 412, a measurement from the metrologyinstrument at a next point in time, 0.020000 milliseconds, is detectedas +13.499 mm as shown in the second column 402. The actual signaldetected is binary corresponding to the 21-bit value (0 0000 0011 01001011 1011) shown in the third column 403. The encoder converts thisnumber to a delta value relative to the previous value:(delta=+13.499−+13.497=+0.002). The encoder then creates a burst of twoquadrature pulses in the positive direction (understood increment is0.001): first pulse as (0110), second pulse as (1010), sequence shown inthe fourth column 404. The period between these two pulses is limited bythe system being used and was set to 833 nanoseconds for the equipmentdescribed (quadrature burst data rate of 1.2 MHz mentioned above). Thequadrature state of (1010) is held constant between 0.020833 and0.040000 milliseconds (between points in time). As the precisionproduction equipment receives each pulse, the direction is understood byconvention and the internal register assigned to the metrologyinstrument is updated as shown in column 406.

Moving to the third row 414, a reading from the metrology instrument ata next point in time, 0.040000 milliseconds (20 micro-seconds after therow 412 reading, corresponding to a data rate of 50,000 Hz mentionedabove), is detected as +13.502 mm as shown in the second column 402. Theactual signal detected is binary corresponding to the 21-bit value (00000 0011 0100 1011 1110) shown in the third column 403. The encodercalculates the new delta: (delta=+13.502−+13.499=+0.003) shown in column404. The encoder then creates a burst of three quadrature pulses in thepositive direction starting from the hold state of (1010): first pulseas (1001), second pulse as (0101), third pulse as (0110): the sequenceshown in the fifth column 405. These values are transferred to (detectedand processed by) the CNC machine 200 in a data register—column 406—thatis incremented by each described pulse.

Moving to the fourth row 416, a reading from the metrology instrument ata next point in time, 0.060000 milliseconds, is detected as +13.515 mmas shown in the second column 402. The actual signal detected is binarycorresponding to the 21-bit value (0 0000 0011 0100 1100 1011) shown inthe third column 403. The encoder calculates the new delta:(delta=+13.515−+13.502=+0.013) shown in column 404. The encoder thencreates a burst of thirteen quadrature pulses in the positive direction,sequence shown in the fifth column 405. These values are transferred to(detected and processed by) the CNC machine 200 in a dataregister—column 406—that is incremented by each described pulse. Thetime interval required to communicate the delta of magnitude 0.013 canbe seen in column 401 and is 0.0100000 milliseconds (half of themetrology instrument measurement period 0.020000 milliseconds). Itshould also be mentioned here that the quadrature encoder pulses arecreated at points in time slightly delayed from those shown as dictatedby the time to calculate the delta values. Thus it can be seen that, forthis example, a low-pass filter delta magnitude limit should be on theorder of 0.020 if it is important to read and to substantiallycommunicate every metrology instrument reading and avoid the detrimentaleffects of singular events of noise whether inherent to the workpiece,metrology instrument, communication channel or other sources of largediscontinuities in received data.

Moving to the fifth row 418, a reading from the metrology device at anext point in time, 0.080000 milliseconds, is detected as +13.511 mm asshown in the second column 402. The actual signal detected is binarycorresponding to the 21-bit value (0 0000 0011 0100 1100 0111) shown inthe third column 403. The encoder calculates the new delta:(delta=+13.511−+13.515=−0.004) shown in column 404. The encoder thencreates a burst of four quadrature pulses in the negative direction,sequence shown in the fifth column 405. These values are transferred to(detected and processed by) the CNC machine 200 in a Coordinate MachineRegister—column 406—that is incremented by each described pulse. Thisfinal example is used to illustrate a negative delta (decrement).

FIG. 5 shows a table 500 illustrating an exemplary computation orfiltering scheme that maximizes the systems response rate to a rapidlychanging metrology signal while ensuring that each sequential datasignal, generated at 50,000 Hz rate in the above, is read and influencesthe output encoded signal. Occasionally, a high rate of change metrologysignal will be encountered. The low-pass limit is imposed if and only ifthe rate of change, quantified as the calculated delta value in column503, creates a delta that takes longer to communicate with theincremental encoder than is available between metrology signals (in theabove example the metrology signal rate is 50,000 Hz, data intervals are0.020 milliseconds). The first column 501 depicts the system timelinesimilar to column 401 shown in FIG. 4. Column 502 shows sequentialmeasured values, at times as modified by the low-pass algorithm. Column503 shows the calculated Delta similar to column 404 in FIG. 4. Column504 shows the low-pass limited Delta when the limit is set at 20. Column505 shows the low-pass imposed current reading when the low-pass limitis set at 20. Column 506 shows the Coordinate Machine Register valueassigned to track the metrology measurement value. Row 510 shows ahypothetical starting state. Row 512 shows a hypothetical subsequentstate with a measured value 33 increments greater than the previousvalue. In row 510 the progression of the state machine is shown firstcalculating the actual delta at 33, then limiting the delta to thelow-pass set point (20), then imposing a low-pass current reading only20 greater than the previous reading, and finally incrementing theoutput one increment as shown in column 506. The subsequent 19 rows showthe progression of the time line and Coordinate Machine RegisterMetrology Value as it is incremented 19 more times. It should be notedthat the internal register assigned to track the previous reading hasbeen set to 20 greater than the previous reading. Row 514 shows asubsequent metrology reading slightly less than the previous truereading but greater than the low-pass imposed previous reading. Thelow-pass previous reading is used to calculate the delta of 8, the lowpass imposed current reading is unchanged from the current measuredvalue, and the output is incremented once. The subsequent 7 rows showthe timeline progressing and Coordinate Machine Register Metrology Valueas it is incremented 7 more times.

Note that the implementing a low-pass filter algorithm is one method ofhandling rapidly changing signal values. Other approaches are possible.

FIG. 6 illustrates steps to implement one embodiment of the inventionfor characterizing (e.g., shape, surface, near surface, sub-surfacecharacteristics) workpieces using the invention to communicate andsynchronize generic metrology data with precision quality controlequipment such as Coordinate Measuring Machines (CMMs). With referenceto FIG. 6, a first step may include establishing an electroniccommunication between a metrology instrument and signal converter 602.Another step includes establishing communication between the signalconverter and a CMM 604. Another step includes placing a blank orunworked workpiece in the CMM 606. Subsequently, coordination isinitiated between the CMM and metrology sensor 608. Values ormeasurements are generated by the CMM and metrology sensor 610.Measurements are logged or persisted from the metrology sensor and theCMM 612. The measurements are synchronized with respect to one another614. As one example, the measurements are synchronized in time relativeto one another. In an optional step, a model or graphical rendering orplot may be generated from the values or measurements 616. The valuesinclude a series of metrology values generated from the metrologyinstrument and a series of position values from the coordinate machine.Optionally, the graphical rendering or values may be compared against acomputer-aided drawing (CAD) model or other model from which theworkpiece was generated a coordinate machine 618. Variations on thisseries of steps are possible.

Example.

FIG. 7 shows a representation of an actual channel 704 formed in amaterial 702 (workpiece) by a milling machine (such as the one shown inFIG. 2). A burr or burred edge 706 is formed along the edge of thechannel 704.

FIG. 8 shows an exemplary set of positions from which measurements aretaken from the material (workpiece) shown in FIG. 7 according to oneimplementation of the invention. With reference to FIG. 8, each of thepositions 802 corresponds to a position along an x-axis, a y-axis and az-axis of a CNC machine (not shown). The set of positions 802 (andcorresponding distance measurements) follow a path taken by an operatingarm and a laser distance measuring machine (not shown) as the distancemeasuring machine passes over the workpiece. For sake of illustrationonly, the path shown in FIG. 8 is shown as a search pattern path asindicated by the direction arrows. However, any style or type of pathmay be taken by the operating arm and distance measuring machine.Further, while a certain number of measurements 802 are shown, an actualnumber of measurements 802 may vary. The measurements 802 are showntaken at somewhat regular spatial intervals, however, such is not alimitation of the invention. In fact the measurements 802 are mostlikely taken at very regular timing intervals and due to the non-zeroaccelerations of the production equipment, the spatial intervals willvary relative to machine kinetics. A frequency of measurements may bevaried according to one or more parameters including amount of variationin distance detected from measurement to measurement, or from area toarea (e.g., flat surface 702 versus channel 704), etc. While a singlepath of measurements 802 is shown, multiple passes may be taken over thesame path so as to build a set of distance measurement values for thesame coordinate values such as those taken for the x-axis, the y-axisand the z-axis observed by the CNC machine. The result of capturing theset of distance and coordinate measurements is a “cloud” of distancevalues or—when coordinated with the location and position informationfrom the CNC machine—a “point cloud” that accurately covers substantialregions of a workpiece.

In contrast to the density of measurement values 802 captured accordingto the invention, a second set of measurement values 804 are shown. Thesecond measurement values 804 represent those values captured accordingto the previously known technique where a working arm would stop at alocation, the CNC machine would trigger and capture a measurementreading 804 (coordinated to known positions along the x-, y- and z-axes)and then move to another location and repeat the procedure. In the timeit would take to capture one or a few single measurements according topreviously available techniques, thousands and tens of thousands ofmeasurements may be captured according to the invention.

FIG. 9 shows a close-up schematic view of a portion of the burredchannel 704 and workpiece 900 shown in FIG. 7 and FIG. 8. With referenceto FIG. 9, there are at least three regions 902, 904 and 906 that areevident—at least one that is not evident with the naked eye when viewingthe workpiece shown in FIG. 7. The top surface 702 and top region 902are separated from the channel 704 and the channel area 904 by a burrededge 706 and by a transition region 906. The burred edge 706 is evidentin FIG. 7, the uneven transition region 906 is not. Workpiece productionand touch probe inspection known in the current art generally does notallow for close inspection and characterization of fine details near andaround transitions from one feature to another. However it is this verygranular high fidelity information that can be used to predict localstresses, very critical fit-up characteristics, etc. Thus there is greatpotential industrial value associated with automated high fidelity ofinspection that can characterize the transition zones between featuresand map these characterizations to the workpiece model. The inventionenables such high fidelity inspection.

A casual inspection of the workpiece 900 would indicate that the channel704 is properly located at a certain depth 908 below the top surface 702of this workpiece 900. A depth micrometer could be used to characterizethe depth of channel 704, and with great difficulty the flatness of thechannel, and even more difficulty characterize the transition zone 906.Similarly a touch probe inspection, either in the production equipmentor a CMM, could be used to characterize the depth of channel 704 butwould be of limited utility for characterizing the transition zone 906within a few thousandths of an inch of the boundary between zones 704and 702. However, the invention facilitates a very detailed inspectionof this interior corner, zone 906. Additionally the inventionfacilitates a characterization of the burred edge 706.

FIG. 10 shows a plot of a set of measurements 1000 relative to across-section of the burred channel shown in FIGS. 7-9 according to oneimplementation of the invention. With reference to FIG. 10, a set ofmeasurements 1002 plot workpiece surface as a function of traveldistance, as detected by a distance measuring metrology instrument. Alsoshown is an actual profile of the top surface 702 and bottom surface(channel) 704. As can be seen, the measurements 1002 accurately reflectthe dimensions and shape of the top surface 702, burred channel 704,transition region and burred ridge (not labeled in FIG. 10). However, asobserved in practice, the measurements 1002 may be shifted relative tothe actual location of these features. The shift shown in FIG. 10 isobserved when scanning from left to right; the shift is toward thedirection of scan. Similarly, in practice the measurements 1002 areshifted to the left when scanning from the right to the left. When theright-to-left scan speed matches the left-to-right scan speed, balancedshifts are observed. By knowing the localized scan speed and precisetime interval between data points, a precise spatial shift can becalculated.

For instance, when the scan speed is 3,048 mm/min and the data loggingrate is 2,048 Hz, simple calculations will reveal the scan speed is 50.8mm/sec, the time interval between logging events is 488.3 microseconds,and the spatial interval between logging events is 24.8 micro-meters. Weutilized Polyworks to analyze raw data from two scans of the samefeature, from two opposite directions and measuring the total spatialoffset between the raw measured locations of sharply defined features.One such sharply defined feature is the pocket edge associated with FIG.10, dimension 1004.

A total spatial offset measurement between recoded locations of asharply defined feature in raw scan data in practice was measured to be40 micrometers while scanning at 3,048 mm/min and logging at 2,048 Hz.Half of this offset is due to the temporal metrology instrument delaywhile scanning in one direction while the other half is due to themetrology instrument's temporal delay while scanning in the oppositedirection. The spatial result of the metrology instrument's temporaldelay while scanning at 3,048 mm/min is 40/2=20 micrometers. Dividingthis spatial delay by the spatial logging interval yields a shift ratioof [(20 micrometer spatial lag)/(24.8 micro-meter spatial scantravel/logging event)=0.806]. Thus the metrology instrument's temporaldelay can be accounted for by interpolating all machine coordinate databack in space the 81% of the vector established between two adjacentlogging events while logging at 2,048 Hz.

We found that in practice a post-scan applied spatial shift algorithmusing linear interpolation results in an exemplary data set, but othertypes of interpolation or extrapolation (where appropriate) arepossible. For every logged event we consider the production machine'saxis recordings (spatial) separate from the recorded metrology value.The spatial shift algorithm assigns each logged metrology reading to apoint in space equivalent to the previous logging event's spatiallocation plus (1 minus the shift ratio, for our example 1−0.81=0.19)times the instantaneous scan vector. For example: three consecutivemetrology readings (13.497, 13.499 and 13.502) where logged at threemachine locations [(0.000, 1.000, −12.000), (0.025, 1.000, −12.000),(0.050, 1.000, −12.000)]. The first metrology reading would be discardedsince there is inadequate data to determine the instantaneous scanapproach vector. The second metrology reading has adequate data todetermine the instantaneous scan vector. The first instantaneous scanvector is [(0.025, 1.000, −12.000)−(0.000, 1.000, −12.000)=(0.025,0.000, 0.000)]. The appropriate shift location for the second metrologyreading is calculated as [(1−0.81)*(0.025, 0.000, 0.000)+(0.000, 1.000,−12.000)=(0.005, 1.000, −12.000)]. Thus the metrology reading of 13.499would be assigned to spatial location (0.005, 1.000, −12.000). Thesecond instantaneous scan vector is calculated as [(0.050, 1.000,−12.000)−(0.025, 1.000, −12.000)=(0.025, 0.000, 0.000)]. The appropriateshift location for the third metrology reading is calculated as[(1−0.81)*(0.025, 0.000, 0.000)+(0.025, 1.000, −12.000)=(0.030, 1.000,−12.000)]. Thus the metrology reading of 13.502 would be assigned tospatial location (0.030, 1.000, −12.000).

Regardless of scan speed or direction when this shift algorithm isapplied, the sharp features of a scanned artifact show in the samespatial location.

As observed in practice and explained above, the measurements 1002 maybe spatially shifted (position) relative to CNC machine coordinates toobtain a post-processed data set that substantially agrees with otherregardless of scan direction or speed. It can be concluded that aspatial shift 1006 is needed and is completely predictable so as tomatch the measurement values 1002 with position coordinate values of theCNC machine. A spatial shift may include a change or shift in time orposition of one or more of the coordinate axis values (e.g., x-axis,y-axis and z-axis values) associated with the working arm or spindle.Such positional shift may be experimentally obtained when configuring orattaching a metrology instrument to the working arm or spindle andscanning bi-directionally over sharply defined discontinuities of thework piece.

Occasionally, an outlier measurement value 1008 may be observed. Suchvalues may or may not be filterable or removable through a filter (e.g.,low-pass filter) associated with a converter (or other device) describedherein.

In one implementation, about 2,048 measurement values were captured persecond, and three independent scans of the identically programmed pathwere captured in rapid succession. The travel rates of the measurementdevice were about 1,524 millimeters per minute, 3,048 millimeters perminute, and 6,096 millimeters per minute. Each scan path included aleft-to-right and right-to-left motion over the same programmed path.When the composite raw data was reviewed the edge details showed theeffects of a fixed temporal delay and various scan speeds. When thecomposite data was post processed in accordance with the spatial shiftalgorithm outlined above, an exemplary composite data set wasestablished similar to that depicted in FIG. 11. In the shiftedcomposite data, all sharp features showed at the same location andremarkably several of the outlier measurements 1008 also showed atsignificantly the same location. Upon further inspection of theworkpiece under a high magnification microscope the edge transitionregion 906, the bur 706 and the existence of tiny particulate matterlaying on the surfaces 702 and 704 were confirmed. Thus the spatialshift algorithm, and means of determining the appropriate total spatialshift (accounting for instantaneous scan speed and direction; andaccounting for total system temporal delay: measurement instrumenttemporal delay, encoder processing temporal delay, encoder to recordingdevice transmission delay, and all other delays between crossing over asharp work piece discontinuity and recording such discontinuity) isexemplary.

FIG. 11 shows a plot of two sets of measurements of a portion of theburred channel shown in FIG. 7. A first set of measurements 1002 isfirst shown in FIG. 10. With reference to FIG. 11, a first set ofdistance measurements 1002 and a second set of distance measurements1102 are plotted as a function of travel distance, or location. Asobserved in practice, the two sets of measurements 1002, 1102substantially match each other. The two sets of measurements 1002, 1102are derived from the CNC machine's passing a measurement device over asame path of a workpiece such as over the burred channel 704 of FIGS.7-9. The spatial frequency of measurement capture for the first set ofmeasurements 1002 is higher than the spatial frequency of measurementcapture for the second set of measurements 1102 (scan speed associatedwith 1002 was lower than the scan speed for the second set 1102 whilethe temporal logging rate remained constant). Accordingly, for a set of10 measurements from the first set of measurements 1002, it takes afirst scan path distance 1104, and a longer scan path distance 1106 fora corresponding set of 10 measurements from the second set ofmeasurements 1102. As can be seen in FIG. 11, and as observed inpractice, the measurements are repeatable and consistent even when takenat different rates or scan speeds. Thus, the scan path speed and or thetemporal logging interval of capturing measurements may be variedwithout detracting from the utility of the invention as long as thesystem temporal delay is determined and compensated for in a mannersignificantly similar to the spatial shift algorithm described above.

In summary, a laser scanner provides a means for a non-contact method tomeasure distance to a surface of a workpiece. Fast, continuousmeasurements or samples are captured. The measurement machine is mountedto a working arm or spindle of a CNC machine. Three-dimensional pointcloud images of a workpiece are the result. The process is completelyautomated or semi-automated. Resolution of the distance values isoptical, not mechanical. Non-contact detection eliminates damage eitherto the target or sensor head, ensuring a long service life andmaintenance-free operation of measurements. Measurements may be taken ofa variety of materials, finishes, or angles of incidence. Detection maybe based on the quantity of light received by the measurement device, ora change in the quantity of reflected light. Thus, detection is possiblefor workpieces made of glass, metals, plastics, woods, and liquids.

The distance between workpiece and measurement device may be substantialsuch that a measurement device may be used according to the invention ina variety of settings and in a variety of machines. For areflective-type photoelectric sensor, a measurement distance may rangefrom a few millimeters or less up to about 2.0 m (6.6 ft). Athrubeam-type measurement device has a detecting distance of up to about40.0 m (131.2 ft). A retro-reflective type measurement device has adetecting distance of up to about 50 m (164 ft).

Currently available photoelectric sensors are capable of a response rateas high as about 400 kHz. With current sensors, color differentiation ispossible. A sensor has the ability to detect light from an object orworkpiece based on the reflectivity of its color, thus permitting colordetection and color differentiation.

FIG. 12 of the drawings shows an exemplary hardware 1200 that may beused to implement the present invention. Referring to FIG. 12, thehardware 1200 typically includes at least one processor 1202 coupled toa memory 1204. The processor 1202 may represent one or more processors(e.g. microprocessors), and the memory 1204 may represent random accessmemory (RAM) devices comprising a main storage of the hardware 1200, aswell as any supplemental levels of memory, e.g., cache memories,non-volatile or back-up memories (e.g. programmable or flash memories),read-only memories, etc. In addition, the memory 1204 may be consideredto include memory storage physically located elsewhere in the hardware1200, e.g. any cache memory in the processor 1202 as well as any storagecapacity used as a virtual memory, e.g., as stored on a mass storagedevice 1210.

The hardware 1200 also typically receives a number of inputs and outputsfor communicating information externally. For interface with a user oroperator, the hardware 1200 may include one or more user input devices1206 (e.g., a keyboard, a mouse, imaging device, scanner, etc.) and aone or more output devices 1208 (e.g., a Liquid Crystal Display (LCD)panel, an electronic whiteboard, a touch screen, a sound playback device(speaker)).

For additional storage, the hardware 1200 may also include one or moremass storage devices 1210, e.g., a floppy or other removable disk drive,a hard disk drive, a Direct Access Storage Device (DASD), an opticaldrive (e.g. a Compact Disk (CD) drive, a Digital Versatile Disk (DVD)drive, universal serial bus (USB) drive, etc.) and/or a tape drive,among others. Furthermore, the hardware 1200 may include an interfacewith one or more networks 1212 (e.g., a local area network (LAN), a widearea network (WAN), a wireless network, and/or the Internet amongothers) to permit the communication of information with other computerscoupled to the networks. It should be appreciated that the hardware 1200typically includes suitable analog and/or digital interfaces between theprocessor 1202 and each of the components 1204, 1206, 1208, and 1212 asis well known in the art.

The hardware 1200 operates under the control of an operating system1214, and executes various computer software applications, components,programs, objects, modules, etc. to implement the techniques describedabove. Moreover, various applications, components, programs, objects,etc., collectively indicated by reference 1216 in FIG. 12, may alsoexecute on one or more processors in another computer coupled to thehardware 1200 via a network 1212, e.g. in a distributed computingenvironment, whereby the processing required to implement the functionsof a computer program may be allocated to multiple computers over anetwork.

In general, the routines executed to implement the embodiments of theinvention may be implemented as part of an operating system or aspecific application, component, program, object, module or sequence ofinstructions referred to as “computer programs.” The computer programstypically comprise one or more instructions set at various times invarious memory and storage devices in a computer, and that, when readand executed by one or more processors in a computer, cause the computerto perform operations necessary to execute elements involving thevarious aspects of the invention. Moreover, while the invention has beendescribed in the context of fully functioning computers and computersystems, those skilled in the art will appreciate that the variousembodiments of the invention are capable of being distributed as aprogram product in a variety of forms, and that the invention appliesequally regardless of the particular type of computer-readable mediaused to actually effect the distribution. Examples of computer-readablemedia include but are not limited to recordable type media such asvolatile and non-volatile memory devices, floppy and other removabledisks, hard disk drives, optical disks (e.g., Compact Disk Read-OnlyMemory (CD-ROMs), Digital Versatile Disks (DVDs), flash memory, etc.),among others. Another type of distribution may be implemented asInternet downloads.

Alternatives.

While the above description has been for a CNC machine, the techniquesare applicable to any type of machine when combined with a measuringdevice. While a measurement device has been illustrated or exemplifiedwith a laser displacement or distance measuring device other types ofmeasuring devices may be combined with a machine. For example, adetector or electronic measurement device 202 may be any commercial,off-the-shelf (COTS) photoelectric sensor that uses a red laser diode orinfrared laser diode as its signal. As another example, a measurementdevice 202 may measure eddy currents and may thus provide data forvisualization of certain qualities of a material or may determinedistance such a laser-based measuring device would. Eddy currents areelectric currents induced within a conductive material. Eddy currentshave inductance and induce magnetic fields, which in turn can causerepulsive, propulsive, drag and heating effects. Eddy currents andrelated measurements are typically measured as a scalar and may bemeasured over a circular area down to 50 micrometers (0.002 in.)diameter. In another example, a measuring device is an ultrasoundsensor. Distances and other characteristics may be detected through theuse of an ultrasound device. Other data from such measurement devicesmay be synchronized or coordinated with position-based measurements oreach other in the same or similar ways as described herein.

The above description also makes reference to an encoder. The encodercould be any type of computer device, computing component, circuitry,hardware, firmware, software and the like, and combinations of the same.The invention may alternatively be implemented in field programmablegate arrays (FPGA) and the like. The invention embraces these and allimplementations of the techniques described herein.

Systems as described herein are capable of logging or recording only onepoint for every few points (e.g., 10, 25) that a laser displacementsensor measures and delivers. One example of a logging rate is 2,048 Hz,while an exemplary measurement rate is 50,000 Hz. Other rates arepossible. It is possible to log every single laser displacement sensormeasurement and accurately locate it on a workpiece. The same routineinvolving a fabricated index signal that is currently disclosed forultra-sound and eddy current can be used to log every laser displacementsensor measurement.

For ease of locating each measurement, in one implementation, it isassumed that the fabricated index signal increments at 204,800 Hz in asaw tooth pattern. The encoder creates the index signal, and sends it tothe CNC machine. When a new measurement is received by the encoder fromthe laser displacement sensor, the encoder logs both the laserdisplacement sensor measurement and its current value of the indexsignal. The CNC logs the value of the index signal and its axis at the2,048 Hz rate. For every CNC machine logging event, the index signal hasincremented one hundred units. This large index increment allows thesystem to locate every laser displacement sensor measurement to within1/100th of the distance moved between CNC events. It is possible tolocate every laser displacement sensor measurement within about 0.5microns when scanning at 6 meters per minute, 240 ipm.

Along with values associated with a motorized indexing head (such asmodel PH-10MQ commercially available from Renishaw (Hoffman Estates,Ill., USA)), it is possible to log line scan data in the same way. Thisis done by capturing every point on every measurement cycle in theencoder along with an index value. The CNC machine can track and log theindex signal as discussed. The motorized indexing head providessufficiently accurate orientation to locate every point along the fan ofa line scanner. Again, all data from the line scanner can be logged bythe encoder along with an index signal, giving a reference to accuratelylocate every measurement point from a line scanner.

Conclusion.

In the previous description, for purposes of explanation, numerousspecific details are set forth in order to provide an understanding ofthe invention. It will be apparent, however, to one skilled in the artthat the invention can be practiced without these specific details. Inother instances, structures, devices, systems and methods are shown onlyin block diagram form in order to avoid obscuring the invention.

Reference in this specification to “one embodiment”, “an embodiment”, or“implementation” means that a particular feature, structure, orcharacteristic described in connection with the embodiment orimplementation is included in at least one embodiment or implementationof the invention. Appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment, nor are separate or alternative embodimentsmutually exclusive of other embodiments. Moreover, various features aredescribed which may be exhibited by some embodiments and not by others.Similarly, various requirements are described which may be requirementsfor some embodiments but not other embodiments. It will be evident thatthe various modification and changes can be made to these embodimentswithout departing from the broader spirit of the invention. In an areaof technology such as this, where growth is fast and furtheradvancements are not easily foreseen, the disclosed embodiments may bereadily modifiable in arrangement and detail as facilitated by enablingtechnological advancements without departing from the principles of thepresent disclosure.

We claim:
 1. A system, comprising: a metrology device configured tomeasure workpiece metrology values; a manufacturing machine comprisingan operating tool arm fixed to the metrology device and a workpiece atleast partially inside the working envelope of the manufacturingmachine, configured to measure and record its position coordinate valuesand an index signal value at a regular or near regular first frequency;a computer component configured to generate an index signal thatincrements periodically at a regular or near regular second frequency; acomputer component configured to simultaneously record the workpiecemetrology values and the corresponding index signal values creating amatrix of metrology values and raw index values; a computer componentconfigured to temporally adjust the index values and create a matrix ofworkpiece metrology values and temporally adjusted index values; acomputer component configured to transmit the index signal to themanufacturing machine in a format compatible with the manufacturingmachine; a computer component configured to interpolate themanufacturing machine position coordinate values corresponding with thematrix of temporally adjusted index values; a computer componentconfigured to apply a vector addition of interpolated machine positioncoordinate values and corresponding workpiece metrology values creatinga spatially oriented workpiece metrology value matrix; and a computercomponent configured to visualize, summarize, and/or report theresulting spatially oriented workpiece metrology value matrix.
 2. Thesystem of claim 1, wherein at least one of the metrology device or acomputing component is configured to filter the workpiece metrologyvalues according to a filtering criterion.
 3. The system of claim 1,wherein the temporal adjustment is constant.
 4. The system of claim 1,wherein the at least one of the metrology device or a computing deviceis configured to vary a rate of measurement and/or recording of themetrology values during the cycle of movement based on a measuredcharacteristic of the workpiece.
 5. The system of claim 1, wherein themetrology device comprises one of a surface flaw detector, athrough-body inspection device, an x-ray fluorescence (XRF) analyzer, anon-contact distance measurement device, or a contact distancemeasurement device.
 6. The system of claim 1, wherein the manufacturingmachine comprises one of a computer numerically controlled (CNC) machineor a robot.
 7. A method for determining a property of a workpiece in acoordinate machine, comprising: measuring, by a measuring deviceattached to a machine tool arm of the coordinate machine, a propertyvalue associated with a spatial point of a workpiece as the machine toolarm performs a movement sequence along a programmed path; encoding theproperty value to yield an encoded value comprising a format acceptableby a recording component of the coordinate machine; matching the encodedvalue to a coordinate value for the machine tool arm during the movementsequence; and recording the encoded value in association with thecoordinate value.
 8. The method of claim 7, wherein the matchingcomprises at least one of applying a temporal delay value to thecoordinate value and comprises measuring an impedance value as theproperty value.
 9. The method of claim 8, further comprising: matching aplurality of encoded values, including the encoded value, to a pluralityof coordinate values to yield synchronized data; determining a map ofimpedance values for the workpiece based on the synchronized data; andgenerating a graphical representation of the workpiece based on the mapof impedance values.
 10. The method of claim 9, wherein the generatingthe graphical representation comprises illustrating at least one of ahigh impedance line or a zone of the workpiece indicative of a surfaceflaw, a near surface flaw, or a discontinuity.
 11. The method of claim7, further comprising: matching a plurality of encoded values, includingthe encoded value, to a plurality of coordinate values to yieldsynchronized data; and generating a graphical representation of theworkpiece based on the synchronized data.
 12. A method for determine aworkpiece property, comprising: measuring, with a measuring deviceattached to a machine tool arm of a coordinate machine, a valueassociated with a point of the workpiece as the machine tool armtraverses a programmed path; generating a modulated indexing signal thatincrements at a defined frequency; matching the value associated withthe point of the workpiece with a first value of the modulated indexingsignal correspond to a time of the measuring; interpolating a coordinatevalue for the machine tool arm corresponding with the first value of themodulated indexing signal corresponding to a time of the measuring; andrecording the interpolated coordinate value for the machine tool armwith the corresponding workpiece property value.
 13. The method of claim12, further comprising: measuring a set of distance values, includingthe distance value, using an ultrasound measuring device; and matchingthe set of distance values with a corresponding set of coordinate valuesrecorded for the machine tool arm during traversal of the machine toolarm along the programmed path, wherein the matching is based on themodulated indexing signal.
 14. The method of claim 13, furthercomprising: determining a set of dimensional coordinates for theworkpiece based on the set of distance values and the set of coordinatevalues; and generating a graphical representation of the workpiece basedon the set of dimensional coordinates, wherein the graphicalrepresentation illustrates at least one of an internal reflecting bodyof the workpiece or a surface characteristic of the workpiece.
 15. Themethod of claim 12, wherein the measuring comprises measuring a valueassociated with an alloy make-up table using an X-ray device.
 16. Themethod of claim 15, further comprising: determining a set of alloycompliant zones and non-compliant zones for the workpiece based on thevalue associated with the alloy make-up table, the encoded index value,the coordinate value, and a zoned alloy make-up specification; andgenerating a graphical representation of the workpiece based on the setof alloy compliant zones and non-compliant zones.
 17. The method ofclaim 12, further comprising applying a time offset to at least one ofthe encoded index value, the coordinate value, or the value associatedwith the point of the workpiece to yield synchronized data.
 18. A methodfor spatial correction of metrology data, comprising: recordingmetrology data values substantially synchronously with spatialcoordinate values for a production device as the production devicetraverses a programmed path; computing an instantaneous scan vectorbased at least in part on the spatial coordinate values; and assigning ametrology data value, of the metrology data values, to a spatiallocation based on the instantaneous scan vector.
 19. The method of claim18, wherein the metrology data value is recorded substantiallysynchronously with a first of the spatial coordinate values, and whereinthe assigning comprises assigning the metrology data value to a spatiallocation corresponding to a second of the spatial coordinate valuesimmediately prior to the first of the spatial coordinate values plus afraction of the instantaneous scan vector.
 20. The method of claim 19,wherein the fraction comprises one minus a shift ratio determined for ametrology instrument that measures the metrology data values, whereinthe shift ratio comprises a temporal delay of the metrology instrumentdivided by a temporal logging interval of the production device.